import pandas as pd


def read_team_info(excel_path):
    """从Excel文件读取队伍信息并结构化输出"""
    try:
        # 读取Excel数据（自动处理表头）
        df = pd.read_excel(
            excel_path,
            engine='openpyxl',
            converters={'队伍编号': str}  # 保持编号格式
        )

        # 转换为结构化列表
        teams = []
        for _, row in df.iterrows():
            # 处理空值并构建字典
            team = {
                '参赛队号': str(row.get('参赛队号', '')).strip(),
                '学校名': str(row.get('学校名', '未知学校')).strip(),
                '队员': [
                    str(row[f'队员{i}']).strip()
                    for i in range(1, 4)
                    if pd.notna(row.get(f'队员{i}'))
                ],
                '指导教师': str(row.get('指导教师', '无')).strip(),
                '加密号': str(row.get('加密号', '无')).strip()
            }
            print(row)
            teams.append(team)

        # 控制台格式化输出
        print(f"\n成功读取 {len(teams)} 支队伍信息：")
        for i, team in enumerate(teams, 1):
            print(f"\n【队伍 {i}】")
            print(f"参赛队号：{team['参赛队号']}")
            print(f"学校：{team['学校名']}")
            # print(f"成员：{', '.join(team['队员'])}")
            print(f"成员：{team['队员']}")
            print(f"加密号：{team['加密号']}")
            print(f"指导老师：{team['指导教师']}")

        return teams

    except FileNotFoundError:
        print(f"错误：文件 {excel_path} 不存在")
    except Exception as e:
        print(f"读取失败：{str(e)}")


# 使用示例
# if __name__ == "__main__":
#     excel_file = "../附件1.xlsx"  # 确保列名包含：队伍编号、队伍名称、所属学校、成员1、成员2、成员3、指导教师
#     team_list = read_team_info(excel_file)

    # 如需直接访问数据
    # if team_list:
    #     print("\n数据结构示例：")
    #     print(team_list[0])  # 打印第一条队伍信息